﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using BiblioWeb.DataAccess;
using BiblioWebProyecto2013.Models;
using BiblioWebProyecto2013.ServiceLayer;

namespace BiblioWebProyecto2013.Controllers
{   //[Authorize]
    public class PrestamoController : Controller
    {
        private ContextoBiblio db;
        private Operaciones operaciones;
        private UsuarioRepo usuarioRepo;
        private PrestamoRepo prestamoRepo;

        public PrestamoController()
        {
            this.db = new ContextoBiblio();
            this.operaciones = new Operaciones(db);
            this.usuarioRepo = new UsuarioRepo(db);
            this.prestamoRepo = new PrestamoRepo(db);
        }
       

        //
        // GET: /Material/Details/5

        public ActionResult Detalle(int id = 0)
        {

            Material material = db.Materiales.Find(id);
            if (material == null)
            {
                return HttpNotFound();
            }
            return View(material);
        }


        public ActionResult Prestar(int idReserva)
        {
            String userNameActual = User.Identity.Name;
            if (this.operaciones.PrestamoValido(userNameActual))
            {
                this.operaciones.RealizarPrestamo(userNameActual, idReserva);
                return RedirectToAction("Prestar", "Prestar");


            }
            else
            {
                //aca tendria que informar que no puede reservar
                return RedirectToAction("Index");

            }
        
        }
     //
        // GET: /Reservar/

        public ActionResult Index()
        {
            var usuarios = this.usuarioRepo.Todos();
            return View(usuarios.ToList());
        }

        public ActionResult DevolverPrestamo(int idPrestamo)
        {
            String userNameActual = User.Identity.Name;
            this.operaciones.DevolverPrestamo(userNameActual, idPrestamo);
            return RedirectToAction("Prestar", "Prestar");
            
        
        }


     
    }
}